1. Field of the Invention
The present invention addresses the problem of validating specific system or device configurations, especially when the set of all valid configurations is too large to enumerate practically, e.g., in a mass customized environment.
2. Background Description
A product is a system or device produced to interact in a specified way with the rest of the world. We will use the term xe2x80x9cproductxe2x80x9d to refer to a set of related entities, described by the specific values taken on by a set of variables. The xe2x80x9cconfigurationxe2x80x9d of a specific system or device is the set of values taken on by these variables. The configuration serves two functions. Externally, it allows a judgement on whether the system or device is appropriate for some purpose or teleology. Internally, it should map onto a unique set of components and component interconnections where xe2x80x9cuniquexe2x80x9d is understood to allow for substitution of functionally equivalent components. A xe2x80x9cvalidxe2x80x9d configuration is one that results in the correct operation of the system or device as a whole. The set of all valid configurations comprises the xe2x80x9cconfiguration spacexe2x80x9d. As the configuration space expands, the term xe2x80x9cproductxe2x80x9d loses its connection to a single entity type and instead becomes a loose label for the configuration space. Mass customization is the case where the number of distinct systems in the configuration space is large as compared to the number of configurations physically produced.
Mass customized production faces a unique validation problem. For mass production of a small configuration space, each configuration can be physically tested, i.e., validated, before it is offered. For custom production (typically of high value systems or devices), each system or device is tested, individually and extensively, and adjusted to be valid. In mass customized production, prior physical validation would naively require building more test systems than production systems, thereby greatly increasing the cost. The problem then is, given a configuration, determine that it is valid with sufficiently high confidence to justify its production.
Simply enumerating all the configurations in a mass customized production configuration space may be impractical or even impossible. To provide insight into the practical difficulties of enumerating configurations, assume that a configuration can be defined by a xe2x80x9cclosed configuration spacexe2x80x9d characterized by a specific number of enumerated variables. The maximum number of configurations is the product over the variable properties of the number of values (cardinality) allowed for each variable,             n      max        =                  ∏                  i          =          1                          i          =          N                    ⁢              xe2x80x83            ⁢              n        i              ,
where N is the number of variables and ni is the fixed cardinality of the ith variable. Even simple spaces can result in a very large nmax; for example, a space with 5 variables with each ni=10 has 100,000 (105) distinct configurations. Personal computer (PC) product offerings representing billions of configurations are routine. The configurable space of software applications, such as SAP software, can be even larger. The case of an xe2x80x9copen configuration spacexe2x80x9d where the number of variables, their cardinality, and the specific values allowed vary over time or are indeterminate and fixed only on a case-by-case basis is even more problematic.
Existing configuration methods do not address the problem of validation directly. Instead, they reduce the problem to the determination of membership of the proposed configuration in a set of configurations deeded valid by engineering analysis, definition, or other means. In general, these methods perform selection from, refinement of, or navigation through a pre-defined set of valid (or not-invalid) configurations
Even these methods are difficult, and so several strategies are used to limit the impact of large configuration spaces. These include (1) limiting the number and cardinality of key variables, (2) partitioning the configuration space into regions labeled as xe2x80x9cproduct familiesxe2x80x9d, products or models, (3) defining key variables with no interdependence so they can be set independently, and (4) enforcing a sequential setting of variables to maximize the restrictions on the configuration space.
The standard solution to the mass customization configuration problem is a configuration constructed with an inference engine and an associated knowledge base or data base to implicitly define and navigate an implicit enumeration of configurations that do not violate known constraints (i.e., xe2x80x9cnot validxe2x80x9d configurations). Several approaches have been taken to building such a configurator. A review can be found in xe2x80x9cDefining Configuringxe2x80x9d in Artificial Intelligence for Engineering Design, Analysis and Manufacturing by David Brown (1988), 12, pp. 301-305. Set navigation depends on assertions about the configuration space defining the dependency, co-dependency and mutual exclusivity relationships among possible variable values. Assertions may be either concrete relationships involving any number of particular components, sub-systems or external characteristics of the system, or abstract relationships, referring to classes or expressions involving components, sub-systems, or external characteristics with unbound variables. Assertions may be explicitly exposed as data, explicitly encapsulated as methods or functions (program code), or implicitly embodied in the structure of the configurator or associated data base.
Building and then maintaining the knowledge base for a complex configuration space involves the difficult problem of representing complex iterations between interdependent variables. As one example, it is difficult to verify that all dependencies have been represented properly. The implicitly defined set of configurations may be too small (does not include valid configurations) or to large (includes invalid configurations) as a consequence. Dependencies may be missed because they are immaterial to the variables and values in use. Adding new variable values outside the xe2x80x9charmlessxe2x80x9d range exposes this problem without providing a clear path for discovery of the root cause and resolution. Because of these difficulties, knowledge base systems for complex configurations are typically employed either as convenient implementations of the simplified strategies listed above or as a starting point tool in situations where high value systems rely on individual final testing for authoritative configuration validation.
In summary, the problem solved by this invention is validation of a specific system or device configuration when the set of all valid configurations is too large to validate individually, enumerate in practice, or when the set is variable over time and therefore cannot be known in advance.
It is therefore an object of the present invention to provide a method for validating the configuration of a system or device in a mass customized environment.
It is another object of the invention to validate the configuration without requiring a knowledge base of the relationships between components that comprise the system or device.
It is a further object of the invention to provide a method of constructing a configuration from a known set of components such that either (a) a valid configuration is constructed and the configuration matches externally imposed specifications or (b) it is known that no such configuration can be constructed.
The method according to the invention accomplishes these objectives by segregating information about the configuration into information that is strictly a property of a single component of the configuration and the information that particular components are connected. The connection information consists of strictly topological information, i.e., what components are connected, and does not contain any information about the physical, logical or functional properties of the connection.
Component information is further segregated into properties physical, logical or functional properties of distinct interfaces. Each interface describes a possible connection point of the component. The properties of the interface provided by a component are solely properties of the component itself and not of any configuration in which it is used.
The only information required for validation is the set of properties of each interface of each component, and the topological connections between specific interfaces on specific components. No global knowledge of any relationship of any components or interfaces is used.
The primary advantage of this invention is its solution of the problem of validating configurations in a mass customizing environment, specifically the ease of maintaining the information required to validate a configuration. Since all the information required for validation is localized on individual components, individual components can be updated in, added to, or deleted from the set of available components without consideration of any relationship to any other component. Advantages that derive from the primary advantage are, first, that records of competitive configurations can be easily maintained and, second, that upgrades or reconfiguration can be done on configurations with obsolete components or on other vendor""s configurations. The representations are compact enough that comprehensive historical records are feasible.
A further advantage is that the constructive validation approach allows for completion, by adding additional components, of a configuration starting with a set of components that determine key external characteristics. The preferred implementation for describing components is also amenable to stating the external specifications for the system corresponding to a given configuration. Additionally, the methods easily supports specification of configuration details, such as associating specific adapter cards with particular expansion slots in PC workstations.
The method has excellent scaling characteristics and can be used to characterize modest systems, such as a PC workstation, to an entire data center. The approach helps to underscore the essential relationships between different products and product families.